﻿'''
202快乐数
编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为：对于一个正整数，每一次将该数替换为它每个位置上的数字的平方和。
然后重复这个过程直到这个数变为 1，也可能是 无限循环 但始终变不到 1。
如果这个过程 结果为 1，那么这个数就是快乐数。
如果 n 是 快乐数 就返回 true ；不是，则返回 false 。
示例 1：
输入：n = 19
输出：true
解释：
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
示例 2：
输入：n = 2
输出：false
提示：
1 <= n <= 2^31 - 1
'''
#读取输入
n = int(input())
num_set = set()
while n != 1 :
    if n in num_set:
        print('false')
        exit()
    else:
        num_set.add(n)
        m = n
        result = 0
        while m != 0:
            i = m % 10
            result += i * i
            m //= 10
        n = result
print('true')
'''
class Solution(object):
    def isHappy(self,n:int)->bool:
        def conSum(n:int)->int:
            sum_n = 0
            while n:
                sum_n += (n % 10) * (n % 10)
                n = n // 10
            return sum_n
        result = set()
        while True:
            if n == 1:
                return True
            elif n in result:
                return False
            else:
                result.add(n)
                n = conSum(n)
#示例
if __name__ == '__main__':
    n = 19
    n1 = 2
    n2 = 249
    n3 = 1002
    print(Solution().isHappy(n))
    print(Solution().isHappy(n1))
    print(Solution().isHappy(n2))
    print(Solution().isHappy(n3))
'''





